#include<time.h>
struct carte
 {
     int num;
     char couleur;
 };
 struct pos{
    int x;
    int y;
    int val;
 };
 void decalage (int *t,char* t1,int *n)
{
    int i,j;
    for (i=0;i<(*n-1);i++)
    { if (*(t+i)==0)
    {
        for (j=i;j<(*n-1);j++)
        {
            *(t+j)=*(t+j+1);
            *(t1+j)=*(t1+j+1);
        }
        i--;
        (*n)--;
    }

    }
    if (*(t+*n-1)==0)
    {
        (*n)--;
    }
}
int my_rand (void)
{
   static int first = 0;
   if (first == 0)
   {
      srand (time (NULL));
      first = 1;
   }
   return (rand ()%39);
}
void affichercartetable(int *t,char *t1,int n)
{ int i;
     for(i=0;i<n;i=i+1)
            {
                printf("%c:%d     ",*(t1+i),*(t+i));
            }
}
void shuffle(struct carte *g)
{ struct carte v;
int i,j;
    for (i=0;i<40;i++)
    { j=my_rand()%39;
    v=*(g+i);
    *(g+i)=*(g+j);
    *(g+j)=v;
    }
}
void remp(struct carte* g)
{ int i,a;
    for (i=0;i<10;i++)
 {
  (g+i)->num=i+1;
  (g+i)->couleur='P';
 }
 a=1;
  for (i=10;i<20;i++)
 {
 (g+i)->num=a;
  (g+i)->couleur='T';
  a++;
 }
 a=1;
  for (i=20;i<30;i++)
 {
  (g+i)->num=a;
  (g+i)->couleur='D';
  a++;
 }
 a=1;
 for (i=30;i<40;i++)
 {
  (g+i)->num=a;
  (g+i)->couleur='C';
  a++;
 }
}
int somme(int *t,int n)
{ int ss=0,i;
    for(i=0;i<n;i++)
{
    ss=ss+(*(t+i));
}
return ss;
}
void zero(int* t,int n)
{  int i ;
    for(i=0;i<n;i++)
    {
        *(t+i)=0;
    }
}
void affichercarte(int *j1,char *j11,int z)
{ int i;
    for (i=0;i<z;i++)
{
    printf("   %c:%d   ",*(j11+i),*(j1+i));
}
}
void roundtable(struct carte *t,int *table,char* table2 )
{
     int x;
  x=my_rand ();
  *(table+0)=(t+x)->num;
  *(table2+0)=(t+x)->couleur;
  (t+x)->num=0;
  do
  {
  x=(rand()%(39-0));
  }while(table[0]==x);
  *(table+1)=(t+x)->num;
  *(table2+1)=(t+x)->couleur;
  (t+x)->num=0;
do{
      x=(rand()%(39-0));
} while((x==table[1])||(x==table[0]));
*(table+2)=(t+x)->num;
  *(table2+2)=(t+x)->couleur;
  (t+x)->num=0;
do{
      x=(rand()%(39-0));
} while((x==table[0])||(x==table[1])||(x==table[0]));
*(table+3)=(t+x)->num;
  *(table2+3)=(t+x)->couleur;
  (t+x)->num=0;
}
void donnercarte(struct carte* g, int *j1 ,char *j11)
{ int i=0,a=0;
    do
{ if (((g+a)->num)!=0)
{
    *(j1+i)=(g+a)->num;
    *(j11+i)=(g+a)->couleur;
    i++;
    (g+a)->num=0;

       }
    a++;
} while (i<3);

}
